package com.lechi.iot.netty.message;


import com.lechi.iot.netty.data.TcpData;

/**
 * TCP 一帧信息
 */
public interface TcpMessage {

    final int REGISTERED_INDEX = -9999;
    final int COMMAND_INDEX = 3;

    final int BEGIN_INDEX = 0;

    final int DATA_INDEX = 1;
    final int DATA_BEGIN_INDEX = 3;

    final int SEND = 0x00, RECV = 0x80;

    /**
     * 返回设备组地址
     *
     * @return 设备组编码
     */
    String deviceGroup();


    int adviceAddr();

    /**
     * 返回消息的数据对象的字节长度.
     *
     * @return 数据对象的字节长度
     */
    int length();

    /**
     * 返回消息的数据对象.
     *
     * @return 数据对象
     */
    TcpData data();

    /**
     * 返回消息的字节数组.
     *
     * @return 字节数组
     */
    byte[] toBytes();

    String deviceSn();
}
